Bootstrapping The Old Fashioned Way | Hackaday

2022-09-10 10:01:37 By : Ms. Kerry Y

The PDP-11, the Altair 8800, and the IMSAI 8080 were some of the heroes of the computer revolution, and they have something in common — front panel switches, and a lot of them. You probably have a fuzzy idea about those switches, maybe from reading Levy’s Hackers, where the painful process of toggling in programs is briefly described. But how exactly does it work? Well thanks to [Dave Plummer] of Dave’s Garage, now we have a handy tutorial. The exact computer in question is a reproduction of the IMSAI 8080, the computer made famous by a young Matthew Broderick in Wargames. [Dave] managed to score the reproduction and a viewer saved him the time of assembly.

The example program is a Larson Scanner, AKA making an strip of lights push a pulse of light across the strip. [Dave] starts with the Assembly code, a scant 11 lines, and runs it through an assembler available online. That gives us machine code, but there’s no hex keypad for input, so we need those in 8-bit binary bytes. To actually program the machine, you set the address switches to your start-of-program location, and the data switches to your first byte. The “deposit” switch sets that byte, while the “deposit next” switch increments the address and then stores the value. It means you don’t have to key in an address for each instruction, just the data. Get to the end of the program, confirm the address is set to the start, and flick run. Hope you toggled everything in correctly. If so, you’re rewarded with a friendly scanner so reminiscent of 80s TV shows. Stick around after the break to see the demonstration!

When I was a kid, I had too hand assemble 6502 code.

Likewise. Got quite good at it for the 6502.

I hand assembled a few lines for a 386 once out of curiosity. Never again.

When I moved to the 6809, that’s when I bought an assembler

A Macro Assembler, I hope? There used to be a big difference between these two. ^^

That was the Nintendo processor, right?

For a very long time, the 6502 was THE processor (well… Z80) in home machines. Apple II, C64, NES, Atari 2600…

Nintendo, Atari, Commodore, Apple, Acorn, and a whole lot of others.

once designed a piece of hardware to go into a vax. showed up at the customer site one day with my prototype, my trusty kaypro 10, and a vax assembly reference card. i’d hand-assemble scope loops, poke them into the console of the vax using kermit, and probe around with an oscilloscope. when i first showed up, they were “how quaint.” then it was “hey! scope loops fast enough to see on a scope!” (they were using an interactive interpreter under ultrix for their debugging). by the time i left it was “show us how you did that!”

Then enter data and opcodes with Alt-keypad.

Anything else is high level, might as well write Javascript (spit).

When I went to college I wrote programs in machine language on pucchcards on an RCA mainframe. Assembly would have been sooo nice. ;)

Trying to remember the machine code for LDA.. when I was 14 I wrote straigjt machine code on the 6502 of my Commodore PET!

Same but with Z80 code. Also typed in the 12K of hex digits for TRS80 LII BASIC into my S100 machine over a week or two, saving on cassette tape each time, and patching the keyboard and screen routines by depositing values in my machine monitor.

Way back, I had a job at an ATM repair depot, the boot code was entered by switches to get the control unit up. Found it peculiar given the level of sophistication of the machine to spit out cash unerringly.

Well .. doing it that way, at least you have no doubt as to the source of what was booted. Unlike the dubious proposition of connecting it to literally every other computer on the planet, and then relinquishing your control to some ‘TPM’ so some faceless corporation can, in theory, prevent the baddies from controlling it.

I entered a bootstrap sequence in octal in Oscar’s PDP 11/70 simulator that I have — just once (well a couple times to get right) and rewarded with a booted system. Not something I want to spend time doing every time :) . A whole program must have been a royal pain in those days….

It is no wonder paper tape, card readers, teletype machines became fashionable :) .

The PDP8 on a Teradyne ATE system required the tape reader code to be entered as above in the ’79s.

the pdp-8 bootstrap we used to use was two words long. it lit off a read that had been set up by reset, then looped to itself until that was overwritten by data coming from the disk.

On the HP1000’s, PDPs and I’m sure many other minicomputers, it was common to enter any manner of blinking lights programs that had the purpose of telling us how busy the computer was. The blinking lights program was always set to the lowest priority, so the faster the lights went from side to side, generally meant the less busy the computer was.

I recall a PDP with a few of these. The lights were setup to show the useful programs jumping from device to device as the light blinkers were swapped out. Was cool but cost 10% of the machines time so they weren’t left installed.

Supposedly you could get yourself a cheap transistor radio, tune it to an unused part of the AM band, and get an idea what the computer was doing. A properly running program would have a sound distinct from one hung up in a loop, etc.

I did that with a calculator I once had: Texas Instruments programmable with red LEDs. The program was to find the smallest factor greater than one. While it was running, very slowly, the screen was off, when it found the factor, the screen displayed the number. When it did so, the RF generated from the screen was very noisy in the AM band, and not hisses but rapid chirps and “toodley-doos”. I could work away on whatever school assignment, and when I heard the racket, could see what the factor was.

I can confirm that yes, you could do this. The early personal computers were not RF shielded and generated a lot of radio noise that varied according to what they were doing. An infinite loop was a distinct sound because it kept going indefinitely. These machines did not usually have interrupts either for multitasking or I/O.

I used to work in the minicomputer industry. Flipping switches and/or punching data on a hex keypad was an every day occurrence to get the bootloader in off the tape or disk drive. Had the sequences memorized, about 28 or so 32-bit instructions/data entries. To this day I can instantly translate binary-to-hex and back on sight.

Separately, back in the early 80’s a friend had an actual IMSAI 8080. We worked together to design a circuit that flashed a bunch of different patterns on 8 LEDs, well beyond the Larsen Scanner pattern. It was meant to be a conversation starter for parties and trips to theme parks. The playback was from a PROM with binary counters clocked by a 555, using the 555 as the Least Significant Bit so we could get 512 locations. All the patterns were developed using the IMSAI’s display, and we got the data pattern for the PROM from that.

You might want to spell the tag in a more usual way: IMSAI rather than AMSAI.

I traded an IMSIA 8080 and a dual floppy cabinet and a 5 foot tall stack of 8″ disks for a then brand new Compaq Portable III 286. I still have the Compaq and wish to heaven I had never made that trade. Still, in hindsight I did get a lot more actual work done with the Compaq.

In fairness, the Portable III with its plasma display is a beautiful machine. I don’t get too excited about vintage x86, but I’d gladly make shelf space for one of those.

I think it the lxi h, 0 can be omitted to save 3 bytes of code.

Does a Larson scanner go back and forth, or just to one side as the video shows?

I wanted to work in a joke about it being a half-larsen scanner.

@Pinch said: “Does a Larson scanner go back and forth, or just to one side as the video shows?”

https://en.wikipedia.org/wiki/Knight_Rider

2. 1982 KITT From “Knight Rider” – Jay Leno’s Garage, Larson scanner in action

https://youtu.be/3YKtQrYNKPg?t=28

Sun3 has a row of LEDs on the back, they go back and forth when it runs sunos and to one side when it runs bsd.

I remember bootstrapping a “small” IBM 1130 Computing System (introduced in 1965) with console toggle switches.[1][2] A necessary step if the 1130 isn’t already set up to Initial Program load (IPL or boot) from an external device such as a IBM 2310 removable cartridge drive containing a 14-inch IBM 2315 1,024,000 byte removable disk cartridge [3], a punched card reader, or a punched paper tape reader. The IPL procedure is buried in the operating manual or “Practices” that were thousands of pages deep housed in roll-around carts low enough to read from while seated at the operating console. 1. IBM 1130 Computing System https://www.technikum29.de/en/computer/ibm1130 2. IBM 1130 https://en.wikipedia.org/wiki/IBM_1130 3. IBM 2310 Removable Disk Drive https://en.wikipedia.org/wiki/History_of_IBM_magnetic_disk_drives#IBM_2310

Obligatory “Could do that with a 555” post. https://www.evilmadscientist.com/2006/make-a-cylon-jack-o-lantern/

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.

By using our website and services, you expressly agree to the placement of our performance, functionality and advertising cookies. Learn more